package com.treasure.service.dto;

import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * 支付结果通知
 *
 * @author <a href="mailto:panxinwen@yingu.com">Pan Xinwen</a>
 * @version 1.0 2018-06-23 11:15
 */
@Data
@NoArgsConstructor
//@AllArgsConstructor
public class AffirmPayResult implements Serializable {

    private static final long serialVersionUID = 5586686373615386511L;

    private String return_code;//SUCCESS/FAIL此字段是通信标识，非交易标识
    private String return_msg;//当return_code为FAIL时返回信息为错误原因 ，例如:签名失败,参数格式校验错误

    private String appid;//微信分配的公众账号ID（企业号corpid即为此appId）
    private String mch_id;//微信支付分配的商户号
    private String device_info;// 	微信支付分配的终端设备号，
    private String nonce_str;//随机字符串，不长于32位
    private String sign;//签名
    private String sign_type;//签名类型，目前支持HMAC-SHA256和MD5，默认为MD5
    private String result_code;//业务结果 SUCCESS/FAIL
    private String err_code;//错误代码
    private String err_code_des;//错误返回的信息描述
    private String openid;//用户在商户appid下的唯一标识
    private String is_subscribe;//用户是否关注公众账号，Y-关注，N-未关注，仅在公众账号类型支付有效
    private String trade_type;//JSAPI、NATIVE、APP
    private String bank_type;//银行类型，采用字符串类型的银行标识
    private Long total_fee;//订单总金额，单位为分
    private Long settlement_total_fee;// 	应结订单金额=订单金额-非充值代金券金额，应结订单金额<=订单金额
    private String fee_type;//货币类型，符合ISO4217标准的三位字母代码，默认人民币
    private Long cash_fee;//现金支付金额订单现金支付金额
    private String cash_fee_type;//现金支付货币类型
    private Long coupon_fee;//代金券金额<=订单金额，订单金额-代金券金额=现金支付金额
    private Integer coupon_count;//代金券使用数量
    private String  coupon_type_$n ;//CASH--充值代金券NO_CASH---非充值代金券 并且订单使用了免充值券后有返回（取值：CASH、NO_CASH）。$n为下标,从0开始编号，举例：coupon_type_0
    private String coupon_id_$n;//代金券ID,$n为下标，从0开始编号
    private String transaction_id;//微信支付订单号
    private String out_trade_no;//商户订单号
    private String attach;//商家数据包
    private String time_end;//支付完成时间
    private Integer payType;//业务类型
    private Long to;//收款人
    private Long from;//收款人
    private Long bizId;//业务编号
    private Long payId;//支付编号
    private String xml;//微信通知XML
    private Boolean is_returned;//通信结果
    private Boolean is_resulted;//业务执行结果

}
